﻿using System.Collections.Generic;
using System.IO;

namespace GimmeRainbow.Abstract
{
    public interface ISaltedHasher
    {

        # region syncMethods

        void GenerateSaltedHash(string filePath, string saltFilePath, HelperClass.HashType hashType);

        void GenerateSaltedHash(string filePath, Stream saltFile, HelperClass.HashType hashType);

        void GenerateSaltedHash(Stream stream, HelperClass.HashType hashType);

        void GenerateSaltedHash(Stream stream, Stream saltStream, HelperClass.HashType hashType);

        void GenerateSaltedHash(IEnumerable<string> filePaths, HelperClass.HashType hashType);

        void GenerateSaltedHash(IEnumerable<string> filePaths, string saltFilePath, HelperClass.HashType hashType);

        void GenerateSaltedHash(IEnumerable<string> filePaths, Stream saltStream, HelperClass.HashType hashType);

        void GenerateSaltedHash(IEnumerable<Stream> fStreams, string saltFilePath,  HelperClass.HashType hashType);

        void GenerateSaltedHash(IEnumerable<Stream> fStreams, Stream saltFilePath, HelperClass.HashType hashType);

        # endregion

    }

}
